package io;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 使用PrintWriter完成简易记事本工具
 * 需求:
 * 程序启动后,对note.txt文件进行写操作.
 * 将在控制台上输入的每一行字符串都按行写到文件中,当单独输入了exit时退出.
 *
 * 要求:自行完成4层流连接.
 *
 */
public class NoteDemo2 {
    public static void main(String[] args) throws FileNotFoundException {
        FileOutputStream fos = new FileOutputStream("./note.txt");
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        BufferedWriter bw = new BufferedWriter(osw);
        /*
            PrintWriter的构造器如果第一个参数是一个流,那么就支持再传入一个boolean值参数,
            表示自动行刷新是否开启.
            如果传入true则开启自动行刷新功能.
         */
        PrintWriter pw = new PrintWriter(bw,true);
        Scanner scanner = new Scanner(System.in);
        System.out.println("请开始输入内容,单独输入exit退出");
        while(true){
            String line = scanner.nextLine();
            if("exit".equalsIgnoreCase(line)){
                break;
            }
            /*
                如果PrintWriter启动了自动行刷新功能,每当调用println方法写出一行字符串后
                就会自动flush一次.
             */
            pw.println(line);
//            pw.flush();
        }
        System.out.println("再见!");
        pw.close();



    }
}
